<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  // catch的返回值：新的Promise实例
    // 1. catch的回调函数没有返回值，新的没有结果的成功状态的Promise实例
    // 2. catch的回调函数有返回值
      // 2.1 非promise实例，新的有结果的成功状态的Promise实例
        // 这个结果是返回的非promise实例数据（字符，数值，布尔，函数，对象等）
      // 2.2 新promise实例，就是这个新的promise实例

  const p1 = new Promise((a, b)=>{
    setTimeout(()=>{
      b("p1的no");
    }, Math.random()*100);
  })

  const p2 = new Promise((a, b)=>{
    setTimeout(()=>{
      b("p2的nonono");
    }, Math.random()*100);
  })

  const abc = p1.catch(res=>{
    console.log(res)
    return p2
  })

  console.log(abc);

  // catch也可以链式调用
  
  // catch也可以链式调用语法
  // p1.catch(()=>p2).catch(()=>p3).catch()




</script>
</html>